home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 20.9 KB | 764 lines | [TEXT/MPS ] |
- (*
- File: MacTCP.mod
-
- Contains: TCP Manager Interfaces.
-
- Version: Technology: MacTCP 2.0.6
- Package: Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE MacTCP;
-
- IMPORT SYSTEM, Types, OSUtils, AppleTalk;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
- (*
- Developer Notes*:
- 0. This MacTCP header replaces what used to be defined in the following header files
- MacTCPCommonTypes.h
- GetMyIPAddr.h
- MiscIPPB.h
- TCPPB.h
- UDPPB.h
-
- When the various control calls are made to the ip driver, you must set up a
- NewRoutineDescriptor for every non-nil completion routine and/or notifyProc parameter.
- Otherwise, the 68K driver code, will not correctly call your routine.
- 1. For ipctlGetAddr Control calls, use NewGetIPIOCompletionProc
- to set up a GetIPIOCompletionUPP universal procptr to pass as
- the ioCompletion parameter.
- 2. For the ipctlEchoICMP and ipctlLAPStats Control calls, use
- NewIPIOCompletion to set up a IPIOCompletionUPP universal procptr
- to pass in the ioCompletion field of the parameter block.
- 3. For TCPCreatePB Control calls, use NewTCPNotifyProc to set up a
- TCPNotifyUPP universal procptr to pass in the notifyProc field
- of the parameter block
- 4. For all of the TCP Control calls using the TCPiopb parameter block,
- use NewTCPIOCompletionProc to set up a TCPIOCompletionUPP
- universal procptr to pass in the ioCompletion field of the paramter
- block.
- 5. For UDBCreatePB Control calls, use NewUDPNotifyProc to set up a
- UDPNotifyUPP universal procptr to pass in the notifyProc field
- of the parameter block
- 6. For all of the UDP Control calls using the UDPiopb parameter block,
- use NewUDPIOCompletionProc to set up a UDPIOCompletionUPP
- universal procptr to pass in the ioCompletion field of the paramter
- block.
- 7. For all calls implementing a notifyProc or ioCompletion routine
- which was set up using a NewTCPRoutineProc call, do not call
- DisposeRoutineSDescriptor on the universal procptr until
- after the completion or notify proc has completed.
- *)
- (* MacTCP return Codes in the range -23000 through -23049 *)
-
- CONST
- inProgress* = 1; (* I/O in progress *)
- ipBadLapErr* = -23000; (* bad network configuration *)
- ipBadCnfgErr* = -23001; (* bad IP configuration error *)
- ipNoCnfgErr* = -23002; (* missing IP or LAP configuration error *)
- ipLoadErr* = -23003; (* error in MacTCP load *)
- ipBadAddr* = -23004; (* error in getting address *)
- connectionClosing* = -23005; (* connection is closing *)
- invalidLength* = -23006;
- connectionExists* = -23007; (* request conflicts with existing connection *)
- connectionDoesntExist* = -23008; (* connection does not exist *)
- insufficientResources* = -23009; (* insufficient resources to perform request *)
- invalidStreamPtr* = -23010;
- streamAlreadyOpen* = -23011;
- connectionTerminated* = -23012;
- invalidBufPtr* = -23013;
- invalidRDS* = -23014;
- invalidWDS* = -23014;
- openFailed* = -23015;
- commandTimeout* = -23016;
- duplicateSocket* = -23017;
-
- (* Error codes from internal IP functions *)
- ipDontFragErr* = -23032; (* Packet too large to send w/o fragmenting *)
- ipDestDeadErr* = -23033; (* destination not responding *)
- icmpEchoTimeoutErr* = -23035; (* ICMP echo timed-out *)
- ipNoFragMemErr* = -23036; (* no memory to send fragmented pkt *)
- ipRouteErr* = -23037; (* can't route packet off-net *)
- nameSyntaxErr* = -23041;
- cacheFault* = -23042;
- noResultProc* = -23043;
- noNameServer* = -23044;
- authNameErr* = -23045;
- noAnsErr* = -23046;
- dnrErr* = -23047;
- outOfMemory* = -23048;
-
- BYTES_16WORD* = 2; (* bytes per* = 16, bit ip word *)
- BYTES_32WORD* = 4; (* bytes per* = 32, bit ip word *)
- BYTES_64WORD* = 8; (* bytes per* = 64, bit ip word *)
-
- (* 8-bit quantity *)
-
- TYPE
- b_8* = Types.UInt8;
-
- (* 16-bit quantity *)
- b_16* = Types.UInt16;
-
- (* 32-bit quantity *)
- b_32* = Types.UInt32;
-
- (* IP address is 32-bits *)
- ip_addr* = b_32;
-
- ip_addrbytes* = RECORD
- (*ΔΔ CASE INTEGER OF
- 0: (
- addr*: b_32;
- );
- 1: ( *)
- byte*: (*ΔΔPACKEDΔΔ*) ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF Types.SInt8; (* UInt8 *)
- (*ΔΔ );*)
-
- END;
-
- wdsEntry* = RECORD
- length*: INTEGER; (* length of buffer *)
- ptr*: Types.Ptr; (* pointer to buffer *)
- END;
-
- rdsEntry* = RECORD
- length*: INTEGER; (* length of buffer *)
- ptr*: Types.Ptr; (* pointer to buffer *)
- END;
-
- BufferPtr* = LONGINT;
-
- StreamPtr* = LONGINT;
-
-
- CONST
- netUnreach* = 0;
- hostUnreach* = 1;
- protocolUnreach* = 2;
- portUnreach* = 3;
- fragReqd* = 4;
- sourceRouteFailed* = 5;
- timeExceeded* = 6;
- parmProblem* = 7;
- missingOption* = 8;
- lastICMPMsgType* = 32767;
-
-
- TYPE
- ICMPMsgType* = INTEGER;
-
- ip_port* = b_16;
-
- ICMPReport* = RECORD
- streamPtr*: StreamPtr;
- localHost*: ip_addr;
- localPort*: ip_port;
- remoteHost*: ip_addr;
- remotePort*: ip_port;
- reportType*: INTEGER;
- optionalAddlInfo*: INTEGER;
- optionalAddlInfoPtr*: LONGINT;
- END;
-
- (* csCode to get our IP address *)
-
- CONST
- ipctlGetAddr* = 15;
-
- TYPE
- GetIPIOCompletionUPP* = Types.UniversalProcPtr;
-
- GetAddrParamBlock* = RECORD
- qLink*: OSUtils.QElemPtr (*ΔΔ POINTER TO OSUtils.QElem*);
- qType*: INTEGER;
- ioTrap*: INTEGER;
- ioCmdAddr*: Types.Ptr;
- ioCompletion*: GetIPIOCompletionUPP;
- ioResult*: Types.OSErr;
- ioNamePtr*: Types.StringPtr;
- ioVRefNum*: INTEGER;
- ioCRefNum*: INTEGER;
- csCode*: INTEGER; (* standard I/O header *)
- ourAddress*: ip_addr; (* our IP address *)
- ourNetMask*: LONGINT; (* our IP net mask *)
- END;
-
- GetIPIOCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR iopb: GetAddrParamBlock);
-
- (* control codes *)
-
- CONST
- ipctlEchoICMP* = 17; (* send icmp echo *)
- ipctlLAPStats* = 19; (* get lap stats *)
-
- TYPE
- IPIOCompletionUPP* = Types.UniversalProcPtr;
-
- ICMPParamBlock* = RECORD
- qLink*: OSUtils.QElemPtr (*ΔΔ POINTER TO OSUtils.QElem*);
- qType*: INTEGER;
- ioTrap*: INTEGER;
- ioCmdAddr*: Types.Ptr;
- ioCompletion*: IPIOCompletionUPP;
- ioResult*: Types.OSErr;
- ioNamePtr*: Types.StringPtr;
- ioVRefNum*: INTEGER;
- ioCRefNum*: INTEGER;
- csCode*: INTEGER; (* standard I/O header *)
- params*: ARRAY 11 (*ΔΔ[0..10]ΔΔ*) OF INTEGER;
- icmpEchoInfo*: RECORD
- echoRequestOut*: LONGINT; (* time in ticks of when the echo request went out *)
- echoReplyIn*: LONGINT; (* time in ticks of when the reply was received *)
- echoedData*: rdsEntry; (* data received in responce *)
- options*: Types.Ptr;
- userDataPtr*: LONGINT;
- END;
-
-
- END;
-
- IPIOCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR iopb: ICMPParamBlock);
-
- ICMPEchoNotifyProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR iopb: ICMPParamBlock);
- ICMPEchoNotifyUPP* = Types.UniversalProcPtr;
-
- IPParamBlock* = RECORD
- qLink*: POINTER TO OSUtils.QElem;
- qType*: INTEGER;
- ioTrap*: INTEGER;
- ioCmdAddr*: Types.Ptr;
- ioCompletion*: IPIOCompletionUPP;
- ioResult*: Types.OSErr;
- ioNamePtr*: Types.StringPtr;
- ioVRefNum*: INTEGER;
- ioCRefNum*: INTEGER;
- csCode*: INTEGER; (* standard I/O header *)
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- dest*: ip_addr; (* echo to IP address *)
- data*: wdsEntry;
- timeout*: INTEGER;
- options*: Types.Ptr;
- optLength*: INTEGER;
- icmpCompletion*: ICMPEchoNotifyUPP;
- userDataPtr*: LONGINT;
- (*ΔΔ );
- 1: (
- lapStatsPtr*: POINTER TO LAPStats;
- );*)
-
- END;
-
- nbp_entry* = RECORD
- ip_address*: ip_addr; (* IP address *)
- at_address*: AppleTalk.AddrBlock; (* matching AppleTalk address *)
- gateway*: BOOLEAN; (* TRUE if entry for a gateway *)
- valid*: BOOLEAN; (* TRUE if LAP address is valid *)
- probing*: BOOLEAN; (* TRUE if NBP lookup pending *)
- afiller*: Types.SInt8; (* Filler for proper byte alignment *)
- age*: LONGINT; (* ticks since cache entry verified *)
- access*: LONGINT; (* ticks since last access *)
- filler*: ARRAY 116 (*ΔΔ[0..115]ΔΔ*) OF Types.SInt8; (* for internal use only !!! *)
- END;
-
- Enet_addr* = RECORD
- en_hi*: b_16;
- en_lo*: b_32;
- END;
-
- arp_entry* = RECORD
- age*: INTEGER; (* cache aging field *)
- protocol*: b_16; (* Protocol type *)
- ip_address*: ip_addr; (* IP address *)
- en_address*: Enet_addr; (* matching Ethernet address *)
- END;
-
- LAPStatsAddrXlation* = RECORD
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- arp_table*: POINTER TO arp_entry;
- (*ΔΔ );
- 1: (
- nbp_table*: POINTER TO nbp_entry;
- );*)
- END;
-
- LAPStats* = RECORD
- ifType*: INTEGER;
- ifString*: SYSTEM.PTR (*ΔΔ POINTER TO CHAR*);
- ifMaxMTU*: INTEGER;
- ifSpeed*: LONGINT;
- ifPhyAddrLength*: INTEGER;
- ifPhysicalAddress*: SYSTEM.PTR (*ΔΔ POINTER TO CHAR*);
- AddrXlation*: LAPStatsAddrXlation;
- slotNumber*: INTEGER;
- END;
-
- (* number of ARP table entries *)
-
- CONST
- ARP_TABLE_SIZE* = 20;
-
- NBP_TABLE_SIZE* = 20; (* number of NBP table entries *)
- NBP_MAX_NAME_SIZE* = 16 + 10 + 2;
-
- (* Command codes *)
- TCPCreate* = 30;
- TCPPassiveOpen* = 31;
- TCPActiveOpen* = 32;
- TCPSend* = 34;
- TCPNoCopyRcv* = 35;
- TCPRcvBfrReturn* = 36;
- TCPRcv* = 37;
- TCPClose* = 38;
- TCPAbort* = 39;
- TCPStatus* = 40;
- TCPExtendedStat* = 41;
- TCPRelease* = 42;
- TCPGlobalInfo* = 43;
- TCPCtlMax* = 49;
-
- TCPClosing* = 1;
- TCPULPTimeout* = 2;
- TCPTerminate* = 3;
- TCPDataArrival* = 4;
- TCPUrgent* = 5;
- TCPICMPReceived* = 6;
- lastEvent* = 32767;
-
-
- TYPE
- TCPEventCode* = INTEGER;
-
-
- CONST
- TCPRemoteAbort* = 2;
- TCPNetworkFailure* = 3;
- TCPSecPrecMismatch* = 4;
- TCPULPTimeoutTerminate* = 5;
- TCPULPAbort* = 6;
- TCPULPClose* = 7;
- TCPServiceError* = 8;
- lastReason* = 32767;
-
-
- TYPE
- TCPTerminationReason* = INTEGER;
-
- TCPNotifyProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (tcpStream: StreamPtr; eventCode: INTEGER; userDataPtr: Types.Ptr; terminReason: INTEGER; VAR icmpMsg: ICMPReport);
- TCPNotifyUPP* = Types.UniversalProcPtr;
-
- tcp_port* = INTEGER;
-
- (* ValidityFlags *)
-
- CONST
- timeoutValue* = $80;
- timeoutAction* = $40;
- typeOfService* = $20;
- precedence* = $10;
-
- (* TOSFlags *)
- lowDelay* = $01;
- throughPut* = $02;
- reliability* = $04;
-
-
- TYPE
- TCPIOCompletionUPP* = Types.UniversalProcPtr;
-
- TCPiopb* = RECORD
- fill12*: ARRAY 12 (*ΔΔ[0..11]ΔΔ*) OF Types.SInt8;
- ioCompletion*: TCPIOCompletionUPP;
- ioResult*: INTEGER;
- ioNamePtr*: Types.Ptr;
- ioVRefNum*: INTEGER;
- ioCRefNum*: INTEGER;
- csCode*: INTEGER;
- tcpStream*: StreamPtr;
- (*ΔΔ CASE INTEGER OF
- 0: (
- create*: TCPCreatePB;
- );
- 1: (
- open*: TCPOpenPB;
- );
- 2: (
- send*: TCPSendPB;
- );
- 3: (
- receive*: TCPReceivePB;
- );
- 4: (
- close*: TCPClosePB;
- );
- 5: (
- abort*: TCPAbortPB;
- );
- 6: (
- status*: TCPStatusPB;
- );
- 7: (
- globalInfo*: TCPGlobalInfoPB;
- );*)
- END;
-
- TCPIOCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR iopb: TCPiopb);
-
- TCPCreatePB* = RECORD(TCPiopb)
- rcvBuff*: Types.Ptr;
- rcvBuffLen*: LONGINT;
- notifyProc*: TCPNotifyUPP;
- userDataPtr*: Types.Ptr;
- END;
-
- TCPOpenPB* = RECORD(TCPiopb)
- ulpTimeoutValue*: Types.SInt8;
- ulpTimeoutAction*: Types.SInt8;
- validityFlags*: Types.SInt8;
- commandTimeoutValue*: Types.SInt8;
- remoteHost*: ip_addr;
- remotePort*: tcp_port;
- localHost*: ip_addr;
- localPort*: tcp_port;
- tosFlags*: Types.SInt8;
- precedence*: Types.SInt8;
- dontFrag*: BOOLEAN;
- timeToLive*: Types.SInt8;
- security*: Types.SInt8;
- optionCnt*: Types.SInt8;
- options*: ARRAY 40 (*ΔΔ[0..39]ΔΔ*) OF Types.SInt8;
- userDataPtr*: Types.Ptr;
- END;
-
- TCPSendPB* = RECORD(TCPiopb)
- ulpTimeoutValue*: Types.SInt8;
- ulpTimeoutAction*: Types.SInt8;
- validityFlags*: Types.SInt8;
- pushFlag*: BOOLEAN;
- urgentFlag*: BOOLEAN;
- filler*: Types.SInt8; (* Filler for proper byte alignment *)
- wdsPtr*: Types.Ptr;
- sendFree*: LONGINT;
- sendLength*: INTEGER;
- userDataPtr*: Types.Ptr;
- END;
-
- (* for receive and return rcv buff calls *)
- (* Note*: the filler in the following structure is in a different location than *)
- (* that specified in the Programmer's Guide. *)
- TCPReceivePB* = RECORD(TCPiopb)
- commandTimeoutValue*: Types.SInt8;
- markFlag*: BOOLEAN;
- urgentFlag*: BOOLEAN;
- filler*: Types.SInt8; (* Filler for proper byte alignment *)
- rcvBuff*: Types.Ptr;
- rcvBuffLen*: INTEGER;
- rdsPtr*: Types.Ptr;
- rdsLength*: INTEGER;
- secondTimeStamp*: INTEGER;
- userDataPtr*: Types.Ptr;
- END;
-
- TCPClosePB* = RECORD(TCPiopb)
- ulpTimeoutValue*: Types.SInt8;
- ulpTimeoutAction*: Types.SInt8;
- validityFlags*: Types.SInt8;
- filler*: Types.SInt8; (* Filler for proper byte alignment *)
- userDataPtr*: Types.Ptr;
- END;
-
- HistoBucket* = RECORD
- value*: INTEGER;
- counter*: LONGINT;
- END;
-
-
- CONST
- NumOfHistoBuckets* = 7;
-
-
- TYPE
- TCPConnectionStats* = RECORD
- dataPktsRcvd*: LONGINT;
- dataPktsSent*: LONGINT;
- dataPktsResent*: LONGINT;
- bytesRcvd*: LONGINT;
- bytesRcvdDup*: LONGINT;
- bytesRcvdPastWindow*: LONGINT;
- bytesSent*: LONGINT;
- bytesResent*: LONGINT;
- numHistoBuckets*: INTEGER;
- sentSizeHisto*: ARRAY (*ΔΔ[0..*)NumOfHistoBuckets(*ΔΔ -1]ΔΔ*) OF HistoBucket;
- lastRTT*: INTEGER;
- tmrSRTT*: INTEGER;
- rttVariance*: INTEGER;
- tmrRTO*: INTEGER;
- sendTries*: Types.SInt8;
- sourchQuenchRcvd*: Types.SInt8;
- END;
-
- TCPStatusPB* = RECORD(TCPiopb)
- ulpTimeoutValue*: Types.SInt8;
- ulpTimeoutAction*: Types.SInt8;
- unused*: LONGINT;
- remoteHost*: ip_addr;
- remotePort*: tcp_port;
- localHost*: ip_addr;
- localPort*: tcp_port;
- tosFlags*: Types.SInt8;
- precedence*: Types.SInt8;
- connectionState*: Types.SInt8;
- filler*: Types.SInt8; (* Filler for proper byte alignment *)
- sendWindow*: INTEGER;
- rcvWindow*: INTEGER;
- amtUnackedData*: INTEGER;
- amtUnreadData*: INTEGER;
- securityLevelPtr*: Types.Ptr;
- sendUnacked*: LONGINT;
- sendNext*: LONGINT;
- congestionWindow*: LONGINT;
- rcvNext*: LONGINT;
- srtt*: LONGINT;
- lastRTT*: LONGINT;
- sendMaxSegSize*: LONGINT;
- connStatPtr*: POINTER TO TCPConnectionStats;
- userDataPtr*: Types.Ptr;
- END;
-
- TCPAbortPB* = RECORD(TCPiopb)
- userDataPtr*: Types.Ptr;
- END;
-
- TCPParam* = RECORD
- tcpRtoA*: LONGINT;
- tcpRtoMin*: LONGINT;
- tcpRtoMax*: LONGINT;
- tcpMaxSegSize*: LONGINT;
- tcpMaxConn*: LONGINT;
- tcpMaxWindow*: LONGINT;
- END;
-
- TCPStats* = RECORD
- tcpConnAttempts*: LONGINT;
- tcpConnOpened*: LONGINT;
- tcpConnAccepted*: LONGINT;
- tcpConnClosed*: LONGINT;
- tcpConnAborted*: LONGINT;
- tcpOctetsIn*: LONGINT;
- tcpOctetsOut*: LONGINT;
- tcpOctetsInDup*: LONGINT;
- tcpOctetsRetrans*: LONGINT;
- tcpInputPkts*: LONGINT;
- tcpOutputPkts*: LONGINT;
- tcpDupPkts*: LONGINT;
- tcpRetransPkts*: LONGINT;
- END;
-
- StreamPPtr* = SYSTEM.PTR (*ΔΔ POINTER TO StreamPtr*);
-
- TCPGlobalInfoPB* = RECORD(TCPiopb)
- tcpParamPtr*: POINTER TO TCPParam;
- tcpStatsPtr*: POINTER TO TCPStats;
- tcpCDBTable*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF StreamPPtr;
- userDataPtr*: Types.Ptr;
- maxTCPConnections*: INTEGER;
- END;
-
-
-
- CONST
- UDPCreate* = 20;
- UDPRead* = 21;
- UDPBfrReturn* = 22;
- UDPWrite* = 23;
- UDPRelease* = 24;
- UDPMaxMTUSize* = 25;
- UDPStatus* = 26;
- UDPMultiCreate* = 27;
- UDPMultiSend* = 28;
- UDPMultiRead* = 29;
- UDPCtlMax* = 29;
-
- UDPDataArrival* = 1;
- UDPICMPReceived* = 2;
- lastUDPEvent* = 32767;
-
-
- TYPE
- UDPEventCode* = INTEGER;
-
- UDPNotifyProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (udpStream: StreamPtr; eventCode: INTEGER; userDataPtr: Types.Ptr; VAR icmpMsg: ICMPReport);
- UDPNotifyUPP* = Types.UniversalProcPtr;
-
- udp_port* = INTEGER;
-
- UDPIOCompletionUPP* = Types.UniversalProcPtr;
-
- UDPiopb* = RECORD
- fill12*: ARRAY 12 (*ΔΔ[0..11]ΔΔ*) OF Types.SInt8;
- ioCompletion*: UDPIOCompletionUPP;
- ioResult*: INTEGER;
- ioNamePtr*: Types.Ptr;
- ioVRefNum*: INTEGER;
- ioCRefNum*: INTEGER;
- csCode*: INTEGER;
- udpStream*: StreamPtr;
- (*ΔΔ CASE INTEGER OF
- 0: (
- create*: UDPCreatePB;
- );
- 1: (
- send*: UDPSendPB;
- );
- 2: (
- receive*: UDPReceivePB;
- );
- 3: (
- mtu*: UDPMTUPB;
- );*)
- END;
-
- UDPIOCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR iopb: UDPiopb);
-
- (* for create and release calls *)
- UDPCreatePB* = RECORD(UDPiopb)
- rcvBuff*: Types.Ptr;
- rcvBuffLen*: LONGINT;
- notifyProc*: UDPNotifyUPP;
- localPort*: INTEGER;
- userDataPtr*: Types.Ptr;
- endingPort*: udp_port;
- END;
-
- UDPSendPB* = RECORD(UDPiopb)
- reserved*: INTEGER;
- remoteHost*: ip_addr;
- remotePort*: udp_port;
- wdsPtr*: Types.Ptr;
- checkSum*: BOOLEAN;
- filler*: Types.SInt8; (* Filler for proper byte alignment *)
- sendLength*: INTEGER;
- userDataPtr*: Types.Ptr;
- localPort*: udp_port;
- END;
-
- (* for receive and buffer return calls *)
- UDPReceivePB* = RECORD(UDPiopb)
- timeOut*: INTEGER;
- remoteHost*: ip_addr;
- remotePort*: udp_port;
- rcvBuff*: Types.Ptr;
- rcvBuffLen*: INTEGER;
- secondTimeStamp*: INTEGER;
- userDataPtr*: Types.Ptr;
- destHost*: ip_addr; (* only for use with multi rcv *)
- destPort*: udp_port; (* only for use with multi rcv *)
- END;
-
- UDPMTUPB* = RECORD(UDPiopb)
- mtuSize*: INTEGER;
- remoteHost*: ip_addr;
- userDataPtr*: Types.Ptr;
- END;
-
-
- CONST
- uppGetIPIOCompletionProcInfo* = $000000C1; (* PROCEDURE (4 byte param); *)
- uppIPIOCompletionProcInfo* = $000000C1; (* PROCEDURE (4 byte param); *)
- uppICMPEchoNotifyProcInfo* = $000000C0; (* PROCEDURE (4 byte param); *)
- uppTCPNotifyProcInfo* = $0000EEC0; (* PROCEDURE (4 byte param, 2 byte param, 4 byte param, 2 byte param, 4 byte param); *)
- uppTCPIOCompletionProcInfo* = $000000C1; (* PROCEDURE (4 byte param); *)
- uppUDPNotifyProcInfo* = $00003EC0; (* PROCEDURE (4 byte param, 2 byte param, 4 byte param, 4 byte param); *)
- uppUDPIOCompletionProcInfo* = $000000C1; (* PROCEDURE (4 byte param); *)
-
- PROCEDURE NewGetIPIOCompletionProc*(userRoutine: GetIPIOCompletionProcPtr): GetIPIOCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewIPIOCompletionProc*(userRoutine: IPIOCompletionProcPtr): IPIOCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewICMPEchoNotifyProc*(userRoutine: ICMPEchoNotifyProcPtr): ICMPEchoNotifyUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTCPNotifyProc*(userRoutine: TCPNotifyProcPtr): TCPNotifyUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTCPIOCompletionProc*(userRoutine: TCPIOCompletionProcPtr): TCPIOCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewUDPNotifyProc*(userRoutine: UDPNotifyProcPtr): UDPNotifyUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewUDPIOCompletionProc*(userRoutine: UDPIOCompletionProcPtr): UDPIOCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallGetIPIOCompletionProc*(VAR iopb: GetAddrParamBlock; userRoutine: GetIPIOCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallIPIOCompletionProc*(VAR iopb: ICMPParamBlock; userRoutine: IPIOCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallICMPEchoNotifyProc*(VAR iopb: ICMPParamBlock; userRoutine: ICMPEchoNotifyUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallTCPNotifyProc*(tcpStream: StreamPtr; eventCode: INTEGER; userDataPtr: Types.Ptr; terminReason: INTEGER; VAR icmpMsg: ICMPReport; userRoutine: TCPNotifyUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallTCPIOCompletionProc*(VAR iopb: TCPiopb; userRoutine: TCPIOCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallUDPNotifyProc*(udpStream: StreamPtr; eventCode: INTEGER; userDataPtr: Types.Ptr; VAR icmpMsg: ICMPReport; userRoutine: UDPNotifyUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallUDPIOCompletionProc*(VAR iopb: UDPiopb; userRoutine: UDPIOCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END MacTCP.
-